-- 第一套 A 表
CREATE TABLE `dma_${code}_idx` (
    `uid` BIGINT(20) NOT NULL  COMMENT '主键ID' ,
    `pid` BIGINT(20)   COMMENT '上级ID;层级模型' ,
    `mid` BIGINT(20)  COMMENT '主线ID;扩展模型' ,
    `mco` VARCHAR(100)   COMMENT '主编码;右模糊查询' ,
    `lco` VARCHAR(100)   COMMENT '层级编码;右模糊查询' ,
    `type_src` VARCHAR(10)   COMMENT '来源类型;0界面 1导入 2接口 3ETL 4其他' ,
    `task_id` VARCHAR(50)   COMMENT '任务ID' ,
    `task_state` INT NOT NULL DEFAULT 0 COMMENT '任务运行态;0未开始1运行中3暂停4已完成' ,
    `data_flag` INT NOT NULL DEFAULT 10 COMMENT '数据状态' ,
    `mvs` INT NOT NULL DEFAULT 0 COMMENT '模型版本' ,
    `version` INT NOT NULL DEFAULT 0 COMMENT '数据版本' ,
    `c01` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c02` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c03` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c04` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c05` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c06` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c07` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c08` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c09` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c10` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c11` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c12` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c13` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c14` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c15` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `n01` DECIMAL(18,6)   COMMENT '数字01;动态数字索引' ,
    `n02` DECIMAL(18,6)   COMMENT '数字01;动态数字索引' ,
    `n03` DECIMAL(18,6)   COMMENT '数字01;动态数字索引' ,
    `n04` DECIMAL(18,6)   COMMENT '数字01;动态数字索引' ,
    `n05` DECIMAL(18,6)   COMMENT '数字01;动态数字索引' ,
    `d01` DATETIME   COMMENT '日期01;动态日期索引' ,
    `d02` DATETIME   COMMENT '日期01;动态日期索引' ,
    `d03` DATETIME   COMMENT '日期01;动态日期索引' ,
    `d04` DATETIME   COMMENT '日期01;动态日期索引' ,
    `d05` DATETIME   COMMENT '日期01;动态日期索引' ,
    `remark` VARCHAR(500)   COMMENT '备注' ,
    `vip_level` INT NOT NULL DEFAULT 0 COMMENT '访问级别' ,
    `dept_id` VARCHAR(32)   COMMENT '提报单位' ,
    `tenant_id` VARCHAR(32)   COMMENT '租户号' ,
    `create_by` VARCHAR(32) NOT NULL  COMMENT '创建人' ,
    `create_time` DATETIME NOT NULL  COMMENT '创建时间' ,
    `update_by` VARCHAR(32) NOT NULL  COMMENT '更新人' ,
    `update_time` DATETIME NOT NULL  COMMENT '更新时间' ,
    `revision` INT NOT NULL DEFAULT 0 COMMENT '乐观锁' ,
    PRIMARY KEY (uid)
)  COMMENT = '数据A索引表';;

CREATE INDEX ida_${code}_code_mas ON dma_${code}_idx(mco);;
CREATE INDEX ida_${code}_code_cat ON dma_${code}_idx(cco);;
CREATE INDEX ida_${code}_pid ON dma_${code}_idx(pid);;
CREATE INDEX ida_${code}_mid ON dma_${code}_idx(mid);;

CREATE TABLE dma_${code}_val(
    `uid` BIGINT(20) NOT NULL  COMMENT '主键ID' ,
    `pid` BIGINT(20)   COMMENT '上级ID;层级模型' ,
    `mid` BIGINT(20)   COMMENT '主线ID;扩展模型' ,
    `mvs` INT NOT NULL DEFAULT 0 COMMENT '模型版本' ,
    `version` INT NOT NULL DEFAULT 0 COMMENT '数据版本' ,
    `data` TEXT   COMMENT '字段值' ,
    `remark` VARCHAR(500)   COMMENT '备注' ,
    `data_flag` INT NOT NULL DEFAULT 10 COMMENT '数据状态' ,
    `vip_level` INT NOT NULL DEFAULT 0 COMMENT '访问级别' ,
    `dept_id` VARCHAR(32)   COMMENT '提报单位' ,
    `tenant_id` VARCHAR(32)   COMMENT '租户号' ,
    `create_by` VARCHAR(32) NOT NULL  COMMENT '创建人' ,
    `create_time` DATETIME NOT NULL  COMMENT '创建时间' ,
    `update_by` VARCHAR(32) NOT NULL  COMMENT '更新人' ,
    `update_time` DATETIME NOT NULL  COMMENT '更新时间' ,
    `revision` INT NOT NULL DEFAULT 0 COMMENT '乐观锁' ,
    PRIMARY KEY (uid)
)  COMMENT = '数据A字段值';;

CREATE INDEX ida_${code}_pid_v ON dma_${code}_val(pid);;
CREATE INDEX ida_${code}_mid_v ON dma_${code}_val(mid);;


-- 第二套 B 表
CREATE TABLE `dmb_${code}_idx` (
    `uid` BIGINT(20) NOT NULL  COMMENT '主键ID' ,
    `pid` BIGINT(20)   COMMENT '上级ID;层级模型' ,
    `mid` BIGINT(20)   COMMENT '主线ID;扩展模型' ,
    `mco` VARCHAR(100)   COMMENT '主编码;右模糊查询' ,
    `lco` VARCHAR(100)   COMMENT '层级编码;右模糊查询' ,
    `type_src` VARCHAR(10)   COMMENT '来源类型;0界面 1导入 2接口 3ETL 4其他',
    `data_flag` INT NOT NULL DEFAULT 10 COMMENT '数据状态' ,
    `mvs` INT NOT NULL DEFAULT 0 COMMENT '模型版本' ,
    `version` INT NOT NULL DEFAULT 0 COMMENT '数据版本' ,
    `c01` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c02` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c03` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c04` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c05` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c06` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c07` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c08` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c09` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c10` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c11` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c12` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c13` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c14` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c15` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `n01` DECIMAL(18,6)   COMMENT '数字01;动态数字索引' ,
    `n02` DECIMAL(18,6)   COMMENT '数字01;动态数字索引' ,
    `n03` DECIMAL(18,6)   COMMENT '数字01;动态数字索引' ,
    `n04` DECIMAL(18,6)   COMMENT '数字01;动态数字索引' ,
    `n05` DECIMAL(18,6)   COMMENT '数字01;动态数字索引' ,
    `d01` DATETIME   COMMENT '日期01;动态日期索引' ,
    `d02` DATETIME   COMMENT '日期01;动态日期索引' ,
    `d03` DATETIME   COMMENT '日期01;动态日期索引' ,
    `d04` DATETIME   COMMENT '日期01;动态日期索引' ,
    `d05` DATETIME   COMMENT '日期01;动态日期索引' ,
    `remark` VARCHAR(500)   COMMENT '备注' ,
    `vip_level` INT NOT NULL DEFAULT 0 COMMENT '访问级别' ,
    `dept_id` VARCHAR(32)   COMMENT '提报单位' ,
    `tenant_id` VARCHAR(32)   COMMENT '租户号' ,
    `create_by` VARCHAR(32) NOT NULL  COMMENT '创建人' ,
    `create_time` DATETIME NOT NULL  COMMENT '创建时间' ,
    `update_by` VARCHAR(32) NOT NULL  COMMENT '更新人' ,
    `update_time` DATETIME NOT NULL  COMMENT '更新时间' ,
    `revision` INT NOT NULL DEFAULT 0 COMMENT '乐观锁' ,
    PRIMARY KEY (uid)
)  COMMENT = '数据A索引表';;

CREATE INDEX idb_${code}_code_mas ON dmb_${code}_idx(mco);;
CREATE INDEX idb_${code}_code_cat ON dmb_${code}_idx(lco);;
CREATE INDEX idb_${code}_pid ON dmb_${code}_idx(pid);;
CREATE INDEX idb_${code}_mid ON dmb_${code}_idx(mid);;

CREATE TABLE dmb_${code}_val(
    `uid` BIGINT(20) NOT NULL  COMMENT '主键ID' ,
    `pid` BIGINT(20)   COMMENT '上级ID;层级模型' ,
    `mid` BIGINT(20)   COMMENT '主线ID;扩展模型' ,
    `mvs` INT NOT NULL DEFAULT 0 COMMENT '模型版本' ,
    `version` INT NOT NULL DEFAULT 0 COMMENT '数据版本' ,
    `data` TEXT   COMMENT '字段值' ,
    `remark` VARCHAR(500)   COMMENT '备注' ,
    `data_flag` INT NOT NULL DEFAULT 10 COMMENT '数据状态' ,
    `vip_level` INT NOT NULL DEFAULT 0 COMMENT '访问级别' ,
    `dept_id` VARCHAR(32)   COMMENT '提报单位' ,
    `tenant_id` VARCHAR(32)   COMMENT '租户号' ,
    `create_by` VARCHAR(32) NOT NULL  COMMENT '创建人' ,
    `create_time` DATETIME NOT NULL  COMMENT '创建时间' ,
    `update_by` VARCHAR(32) NOT NULL  COMMENT '更新人' ,
    `update_time` DATETIME NOT NULL  COMMENT '更新时间' ,
    `revision` INT NOT NULL DEFAULT 0 COMMENT '乐观锁' ,
    PRIMARY KEY (uid)
)  COMMENT = '数据A字段值';;

CREATE INDEX idb_${code}_pid_v ON dmb_${code}_val(pid);;
CREATE INDEX idb_${code}_mid_v ON dmb_${code}_val(mid);;

-- 第三套 C 表
CREATE TABLE `dmc_${code}_idx` (
    `uid` BIGINT(20) NOT NULL  COMMENT '主键ID' ,
    `version` INT NOT NULL DEFAULT 0 COMMENT '数据版本' ,
    `pid` BIGINT(20)   COMMENT '上级ID;层级模型' ,
    `mid` BIGINT(20)   COMMENT '主线ID;扩展模型' ,
    `mco` VARCHAR(100)   COMMENT '主编码;右模糊查询' ,
    `lco` VARCHAR(100)   COMMENT '层级编码;右模糊查询' ,
    `type_src` VARCHAR(10)   COMMENT '来源类型;0界面 1导入 2接口 3ETL 4其他' ,
    `data_flag` INT NOT NULL DEFAULT 10 COMMENT '数据状态' ,
    `mvs` INT NOT NULL DEFAULT 0 COMMENT '模型版本' ,
    `c01` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c02` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c03` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c04` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c05` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c06` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c07` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c08` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c09` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c10` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c11` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c12` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c13` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c14` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `c15` VARCHAR(100)   COMMENT '字符01;动态字符索引' ,
    `n01` DECIMAL(18,6)   COMMENT '数字01;动态数字索引' ,
    `n02` DECIMAL(18,6)   COMMENT '数字01;动态数字索引' ,
    `n03` DECIMAL(18,6)   COMMENT '数字01;动态数字索引' ,
    `n04` DECIMAL(18,6)   COMMENT '数字01;动态数字索引' ,
    `n05` DECIMAL(18,6)   COMMENT '数字01;动态数字索引' ,
    `d01` DATETIME   COMMENT '日期01;动态日期索引' ,
    `d02` DATETIME   COMMENT '日期01;动态日期索引' ,
    `d03` DATETIME   COMMENT '日期01;动态日期索引' ,
    `d04` DATETIME   COMMENT '日期01;动态日期索引' ,
    `d05` DATETIME   COMMENT '日期01;动态日期索引' ,
    `remark` VARCHAR(500)   COMMENT '备注' ,
    `vip_level` INT NOT NULL DEFAULT 0 COMMENT '访问级别' ,
    `dept_id` VARCHAR(32)   COMMENT '提报单位' ,
    `tenant_id` VARCHAR(32)   COMMENT '租户号' ,
    `create_by` VARCHAR(32) NOT NULL  COMMENT '创建人' ,
    `create_time` DATETIME NOT NULL  COMMENT '创建时间' ,
    `update_by` VARCHAR(32) NOT NULL  COMMENT '更新人' ,
    `update_time` DATETIME NOT NULL  COMMENT '更新时间' ,
    `revision` INT NOT NULL DEFAULT 0 COMMENT '乐观锁' ,
    PRIMARY KEY (uid,version)
)  COMMENT = '数据C索引表';;

CREATE TABLE dmc_${code}_val(
    `uid` BIGINT(20) NOT NULL  COMMENT '主键ID',
    `version` INT NOT NULL DEFAULT 0 COMMENT '数据版本' ,
    `pid` BIGINT(20)   COMMENT '上级ID;层级模型' ,
    `mid` BIGINT(20)   COMMENT '主线ID;扩展模型' ,
    `mvs` INT NOT NULL DEFAULT 0 COMMENT '模型版本' ,
    `data` TEXT   COMMENT '字段值' ,
    `remark` VARCHAR(500)   COMMENT '备注' ,
    `data_flag` INT NOT NULL DEFAULT 10 COMMENT '数据状态' ,
    `vip_level` INT NOT NULL DEFAULT 0 COMMENT '访问级别' ,
    `dept_id` VARCHAR(32)   COMMENT '提报单位' ,
    `tenant_id` VARCHAR(32)   COMMENT '租户号' ,
    `create_by` VARCHAR(32) NOT NULL  COMMENT '创建人' ,
    `create_time` DATETIME NOT NULL  COMMENT '创建时间' ,
    `update_by` VARCHAR(32) NOT NULL  COMMENT '更新人' ,
    `update_time` DATETIME NOT NULL  COMMENT '更新时间' ,
    `revision` INT NOT NULL DEFAULT 0 COMMENT '乐观锁' ,
    PRIMARY KEY (uid,version)
)  COMMENT = '数据C字段值';;

CREATE INDEX idc_${code}_pid_v ON dmc_${code}_val(pid);;
CREATE INDEX idc_${code}_mid_v ON dmc_${code}_val(mid);;